Pular para o conteúdo principal

getter_not_subtype_setter_types

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

The return type of getter '{0}' is '{1}' which isn't a subtype of the type '{2}' of its setter '{3}'.

Descrição

#

O analisador produz este diagnóstico quando o tipo de retorno de um getter não é subtipo do tipo do parâmetro de um setter com o mesmo nome.

A relação de subtipo é exigida tanto quando o getter e o setter estão na mesma classe quanto quando um deles está em uma superclasse do outro.

Nota: Isto deixou de ser um erro a partir do Dart 3.9.

Exemplo

#

O código a seguir produz este diagnóstico porque o tipo de retorno do getter x é num, o tipo do parâmetro do setter x é int, e num não é subtipo de int:

dart
// @dart = 3.8
class C {
  num get x => 0;
​
  set x(int y) {}
}

Correções comuns

#

Se o tipo do getter estiver correto, altere o tipo do setter:

dart
class C {
  num get x => 0;
​
  set x(num y) {}
}

Se o tipo do setter estiver correto, altere o tipo do getter:

dart
class C {
  int get x => 0;
​
  set x(int y) {}
}

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