Pular para o conteúdo principal

invalid_field_name

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

Record field names can't be a dollar sign followed by an integer when the integer is the index of a positional field.

Record field names can't be private.

Record field names can't be the same as a member from 'Object'.

Descrição

#

O analisador produz este diagnóstico quando um literal de registro (record) ou uma anotação de tipo de registro tem um campo cujo nome é inválido. O nome é inválido se for:

  • privado (começa com _)
  • igual a um dos membros definidos em Object
  • igual ao nome de um campo posicional (faz-se uma exceção se o campo for um campo posicional com o nome especificado)

Exemplos

#

O código a seguir produz este diagnóstico porque o literal de registro tem um campo chamado toString, que é um método definido em Object:

dart
var r = (a: 1, toString: 4);

O código a seguir produz este diagnóstico porque a anotação de tipo de registro tem um campo chamado hashCode, que é um getter definido em Object:

dart
void f(({int a, int hashCode}) r) {}

O código a seguir produz este diagnóstico porque o literal de registro tem um campo privado chamado _a:

dart
var r = (_a: 1, b: 2);

O código a seguir produz este diagnóstico porque a anotação de tipo de registro tem um campo privado chamado _a:

dart
void f(({int _a, int b}) r) {}

O código a seguir produz este diagnóstico porque o literal de registro tem um campo chamado $1, que também é o nome de um parâmetro posicional diferente:

dart
var r = (2, $1: 1);

O código a seguir produz este diagnóstico porque a anotação de tipo de registro tem um campo chamado $1, que também é o nome de um parâmetro posicional diferente:

dart
void f((int, String, {int $1}) r) {}

Correções comuns

#

Renomeie o campo:

dart
var r = (a: 1, d: 4);

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