undefined_ super_ member_ write
Detalhes sobre o diagnóstico 'undefined_super_member_write' produzido pelo analisador do Dart.
The field '{0}' in a superclass of '{1}' is final, so it can't be assigned to.
The member '{0}' is declared in '{1}', but private names are visible only in their own library.
The setter '{0}' isn't defined in a superclass of '{1}'.
The {0} '{1}' in a superclass of '{2}' can't be assigned to.
There's a getter '{0}' in a superclass of '{1}', but no setter.
Descrição
#
O analisador emite este diagnóstico quando um membro recebe uma atribuição
usando super, mas nenhuma superclasse da declaração envolvente possui um
setter ou um campo não final com esse nome.
Exemplos
#
O código a seguir produz este diagnóstico porque a superclasse A não define
um setter chamado bar:
class A {
set foo(int _) {}
}
class B extends A {
void m() {
super.bar = 0;
}
}
O código a seguir produz este diagnóstico porque a superclasse A define
apenas um getter chamado foo:
class A {
int get foo => 0;
}
class B extends A {
void m() {
super.foo = 0;
}
}
O código a seguir produz este diagnóstico porque o campo foo da superclasse
A é final:
class A {
final int foo = 0;
}
class B extends A {
void m() {
super.foo = 0;
}
}
Correções comuns
#Se o setter herdado que você pretende usar tiver outro nome, faça o nome corresponder ao do setter herdado:
class A {
set foo(int _) {}
}
class B extends A {
void m() {
super.foo = 0;
}
}
Se o setter não estiver definido, adicione-o a uma superclasse:
class A {
set foo(int _) {}
set bar(int _) {}
}
class B extends A {
void m() {
super.bar = 0;
}
}
Se uma superclasse definir apenas um getter, adicione um setter com o mesmo nome:
class A {
int get foo => 0;
set foo(int _) {}
}
class B extends A {
void m() {
super.foo = 0;
}
}
Se o campo na superclasse for final, torne-o não final:
class A {
int foo = 0;
}
class B extends A {
void m() {
super.foo = 0;
}
}
Caso contrário, remova a atribuição.
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
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ê.