Pular para o conteúdo principal

undefined_prefixed_name_write

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

The constant '{0}' imported with the prefix '{1}' can't be assigned to.

The name '{0}' is declared in '{1}', but private names are visible only in their own library.

The setter '{0}' isn't defined in the libraries imported with the prefix '{1}'.

The variable '{0}' imported with the prefix '{1}' is final, so it can't be assigned to.

The {0} '{1}' imported with the prefix '{2}' can't be assigned to.

There's a getter '{0}' in the libraries imported with the prefix '{1}', but no setter.

Descrição

#

O analisador emite este diagnóstico quando um valor é atribuído a um nome por meio de um prefixo de import, mas nenhuma das bibliotecas importadas com esse prefixo possui um setter ou uma variável não final com esse nome.

Exemplos

#

O código a seguir produz este diagnóstico porque dart:core não define nada chamado a:

dart
import 'dart:core' as p;
​
void f() {
  p.a = 0;
}

Dado um arquivo a.dart que contém:

dart
int get x => 0;

O código a seguir produz este diagnóstico porque a.dart tem apenas um getter chamado x:

dart
import 'a.dart' as p;
​
void f() {
  p.x = 0;
}

O código a seguir produz este diagnóstico porque pi é uma constante:

dart
import 'dart:math' as p;
​
void f() {
  p.pi = 0;
}

Correções comuns

#

Se a biblioteca em que o setter é declarado ainda não foi importada, importe-a com o prefixo.

Se o nome estiver errado, troque-o pelo nome de um setter ou variável declarado nas bibliotecas importadas.

Se a biblioteca tiver apenas um getter, adicione a ela um setter com o mesmo nome. Se a variável for final, torne-a não final.

Caso contrário, remova a atribuição.

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