relational_ pattern_ operand_ type_ not_ assignable
Detalhes sobre o diagnóstico 'relational_pattern_operand_type_not_assignable' produzido pelo analisador do Dart.
The constant expression type '{0}' is not assignable to the parameter type '{1}' of the '{2}' operator.
Descrição
#O analisador emite este diagnóstico quando o operando de um padrão relacional tem um tipo que não é atribuível ao parâmetro do operador que será invocado.
Exemplo
#
O código a seguir gera este diagnóstico porque o operando no padrão relacional (0) é um
int, mas o operador > definido em C espera um objeto do tipo
C:
class C {
const C();
bool operator >(C other) => true;
}
void f(C c) {
switch (c) {
case > 0:
print('positive');
}
}
Correções comuns
#Se o switch está usando o valor correto, altere o case para comparar o valor com o tipo de objeto correto:
class C {
const C();
bool operator >(C other) => true;
}
void f(C c) {
switch (c) {
case > const C():
print('positive');
}
}
Se o switch está usando o valor errado, altere a expressão usada para calcular o valor que está sendo comparado:
class C {
const C();
bool operator >(C other) => true;
int get toInt => 0;
}
void f(C c) {
switch (c.toInt) {
case > 0:
print('positive');
}
}
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ê.