Pular para o conteúdo principal

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:

dart
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:

dart
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:

dart
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:

dart
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:

dart
class C<T> {
  T? m(T t) {
    print(t);
    return null;
  }
}

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