Pular para o conteúdo principal

prefer_const_literals_to_create_immutables

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

Use 'const' literals as arguments to constructors of '@immutable' classes.

Descrição

#

O analisador emite este diagnóstico quando um literal de lista, mapa ou conjunto que não é const é passado como argumento para um construtor declarado em uma classe anotada com @immutable.

Exemplo

#

O código a seguir produz este diagnóstico porque o literal de lista ([1]) está sendo passado para um construtor de uma classe imutável, mas não é uma lista constante:

dart
import 'package:meta/meta.dart';
​
@immutable
class C {
  final List<int> f;
​
  const C(this.f);
}
​
C c = C([1]);

Correções comuns

#

Se o contexto puder se tornar um contexto constanteConstant contextUma região do código em que a keyword const está implícita e tudo dentro dessa região precisa ser constante. Saiba mais, então faça isso:

dart
import 'package:meta/meta.dart';
​
@immutable
class C {
  final List<int> f;
​
  const C(this.f);
}
​
const C c = C([1]);

Se o contexto não puder se tornar um contexto constanteConstant contextUma região do código em que a keyword const está implícita e tudo dentro dessa região precisa ser constante. Saiba mais, mas o construtor puder ser invocado usando const, então adicione const antes da invocação do construtor:

dart
import 'package:meta/meta.dart';
​
@immutable
class C {
  final List<int> f;
​
  const C(this.f);
}
​
C c = const C([1]);

Se o contexto não puder se tornar um contexto constanteConstant contextUma região do código em que a keyword const está implícita e tudo dentro dessa região precisa ser constante. Saiba mais e o construtor não puder ser invocado usando const, então adicione a palavra-chave const antes do literal de coleção:

dart
import 'package:meta/meta.dart';
​
@immutable
class C {
  final List<int> f;
​
  const C(this.f);
}
​
C c = C(const [1]);

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