body_ might_ complete_ normally
Detalhes sobre o diagnóstico 'body_might_complete_normally' produzido pelo analisador do Dart.
The body might complete normally, causing 'null' to be returned, but the return type, '{0}', is a potentially non-nullable type.
Descrição
#
O analisador emite este diagnóstico quando um método ou uma função tem um tipo de retorno potencialmente não anulávelPotentially non-nullableUm tipo que é non-nullable explicitamente ou
por ser um parâmetro de tipo. Saiba mais, mas retornaria
null implicitamente se o fluxo de execução chegasse ao fim da função.
Exemplos
#
O código a seguir produz este diagnóstico porque o método m tem um retorno implícito de
null inserido ao final do método, mas o método é declarado para não retornar null:
class C {
int m(int t) {
print(t);
}
}
O código a seguir produz este diagnóstico porque o método m tem um retorno implícito de
null inserido ao final do método, mas, como a classe C pode ser instanciada com um argumento de tipo não anulável, o método é efetivamente declarado para não retornar
null:
class C<T> {
T m(T t) {
print(t);
}
}
Correções comuns
#
Se houver um valor razoável que possa ser retornado, adicione uma instrução return ao final do método:
class C<T> {
T m(T t) {
print(t);
return t;
}
}
Se o método não chegar ao retorno implícito, adicione um throw ao final do método:
class C<T> {
T m(T t) {
print(t);
throw '';
}
}
Se o método retornar null intencionalmente ao final, adicione um retorno explícito de null
ao final do método e altere o tipo de retorno para que seja válido retornar null:
class C<T> {
T? m(T t) {
print(t);
return null;
}
}
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ê.